ShowTable of Contents
XPages でのメモリ使用について
XPages で使用される JSF フレームワークは、アプリケーションセッション内でユーザーがリクエストする XPages コンポーネントをサーバー側で保持します。
サーバー側で保持するコンポーネント量を少なくすることで、同じ JVM メモリ量でも多くのユーザーをマネージ可能になるため、この部分のチューニングは必要となる場合があります。
メモリ使用量を最適化することで、アプリケーションのユーザー数やリクエスト数のスケーラビリティにつながります。
ただし、サーバーの使用状況、アプリケーション設計などの環境要素によって変わってきますのでご注意ください。
HTTPJVMMaxHeapSize 及び HTTPJVMMaxHeapSizeSet パラメータ
このパラメータは、HTTPが使用するJVM がアロケートする最大メモリサイズを指定します。
Domino 8.5.3(32bit版) ではデフォルトは 64MB ( HTTPJVMMaxHeapSize=64M )です。
Domino 8.5.3(64bit版) ではデフォルトは 1024MB ( HTTPJVMMaxHeapSize=1024M )です。
値を大きくすることで、より多くの同時ユーザーをサポートできるようになります。
XPagesを使用する場合のHTTPJVMMaxHeapSizeの推奨値は、Domino 32 bit版の場合256MB、Domino 64 bit版の場合1024MB になります。システムによってデフォルト値にリセットされないように HTTPJVMMaxHeapSizeSet=1 も合わせて設定する必要があります。
Domino 64 bit版においては、メモリ搭載量が大きい場合は値を更に大きくして構いません。大きくすることで、更に多くの同時ユーザーをサポートできますが、GC (ガベージコレクション) やサーバー終了時のメモリ解放処理に時間が余分にかかる可能性があるため、チューニングが必要です。
xsp.persistence.* プロパティ
アプリケーションセッション内でユーザーがリクエストする xPages コンポーネントはサーバーで保持されますが、ユーザーがアプリケーションをナビゲートした時に前の状態をリストアする時にも使われます。
データ保持量が多ければパフォーマンス向上につながりますが、スケーラビリティに影響があるため、バランスが必要です。
XPages は、3つのサーバーページの保持モードをサポートします
-
ページをメモリに保持(パフォーマンス向上)
-
ページをディスクに保持 (スケーラビリティ向上)
-
現在のページのみをメモリに保持 (スケーラビリティとパフォーマンスの向上)
サーバーのデフォルトを指定するとxsp.propaerties ファイルで一括指定が可能です
dataCache プロパティ
XPages が Domino ビューデータソースを含む XPages をリクエストされた際に、保持するコンポーネント総量を最適化するために使用されます。
Domino ビューデータソースに関係する保持データはかなりの JVM メモリを消費します。
このデータソースが複数の HTTP リクエスト間でキャッシュするデータの種類を指定できます。
-
full: ビューエントリーの全てのデータ(列値などを含む)をキャッシュ
-
id: Note ID のみキャッシュ
-
nodata:何もキャッシュしない
部分更新を利用しながら、ビューデータソースが提供するエントリの情報をアクセスするような XPage を作成する際に、パフォーマンスチューニングのために利用します。
ただし、これはメモリ使用量と CPU 使用率のバランスにが必要です。Full の場合、メモリ使用量が多いが CPU 使用率が低く、nodata に設定した場合、メモリ使用量は抑えられるが、CPU使用率が高くなります。